<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>

  <body>
    <script>
      var sb; //声明变量
      sb = 123; //给变量赋值
      sb = "hello"; //修改变量的值

      console.log("3---------------------------");
      // 3.加减乘除取余
      console.log(1 + 0);
      console.log(3 - 1);
      console.log(1 * 3);
      console.log(8 / 2);
      console.log(10 % 1);

      console.log("6---------------------------");

      // 6. if 语句
      var wuhu = 50;
      if (wuhu <= 50) {
        wuhu--;
      } else {
        wuhu++;
      }
      console.log(wuhu);

      console.log("7---------------------------");

      //7. for 语句
      var str = "";
      for (i = 0; i < 5; i++) {
        for (j = 0; j < 5; j++) {
          str += "★";
        }
        str += "\n";
      }
      console.log(str);

      console.log("8---------------------------");

      // 8.while
      var tu = 0;
      while (tu >= 0 && tu < 100) {
        tu++;
      }
      console.log(tu);

      // 9.switch
      var age = prompt("张三考了多少分");
      switch (true) {
        case age >= 0 && age < 30:
          alert("你真是个小机灵鬼");
          break;

        case age >= 30 && age < 60:
          alert("你是不是不了解张三");
          break;

        case age >= 60 && age < 90:
          alert("还行吧");
          break;

        case age >= 90 && age < 100:
          alert("芜湖起飞99%!!!!!!!");
          break;

        case age == 100:
          alert("张三本人");
          break;
      }

      console.log("三元运算符---------------------------");

      // 三元运算符
      var age2 = 20;
      var accessAllowed = age2 > 16 ? true : false;
      console.log(accessAllowed);

      // 数组的基本使用语法
      // var arr1 = new array(1,2,3);
      var arr2 = [1, 2, "hello", 10, 67];
      var arr3 = [30, "20", 10, 7, 88];
      var arr4 = [32, "60", 16, 72, 8];

      //遍历数组
      console.log("arr2---------------------------");
      // 1. for循环 遍历索引
      for (i = 0; i <= arr2.length - 1; i++) {
        console.log(arr2);
      }
      console.log("arr3---------------------------");
      // 2. for循环 for of 遍历索引
      for (var each of arr3) {
        console.log(each);
      }
      console.log("arr4---------------------------");
      //3. foreach循环
      arr4.forEach(function (value, index, array) {
        // console.log(value);
        // console.log(index);
        console.log(array);
      });

      // 11.封装函数
      function fun() {
        alert("阿姨西铁路");
      }
      fun();

      console.log("12---------------------------");
      // 12.对象的基本使用语法
      var obj = {
        name: "aily",
        age: 14,
        sex: "女",
        sayName: function () {
          console.log("world很大");
        },
      };
      console.log(obj);

      console.log("13---------------------------");
      // 向对象中添加属性
      var obj2 = new Object();
      obj2.name = "张三";
      obj2.age = 37;
      obj2.sex = "男";
      obj2.title = "法外狂徒";
      console.log(obj2);

      console.log("14---------------------------");
      // 13.遍历对象
      for (var key in obj2) {
        console.log(key);
      }

      // 一.JavaScript 定义了几种数据类型？哪些是原始类型？哪些是复杂类型？
      //  1.七种数据类型
      //  2.Number String Boolean NaN undefined null Symbol
      //  3.Object function array

      // 二.怎样判断“值”属于哪种类型？typeof 是否能正确判断类型？
      //   1.typeof
      //   2.不能

      //   三.NaN 是什么？有什么特别之处？
      //   1.  Not a Number
      //   2.  表示存储数据的数据类型，不是一个数值.
      //       如果有非数值进行运算，结果就是NaN

      //   四.==与 === 有什么区别？
      //   1.==逻辑相等,===绝对相等

      // 五.console.log(1+"2") 和 console.log(1-"2")的打印结果？
      //           12                          -1

      // 六.为什么 console.log(0.2+0.1==0.3) 输出 false ？
      // JS数字运算时存在精度缺失问题。其主要原因是因为在计算机中，
      // 无论是定点数还是浮点数都是以多位二进制的方式进行存储和运算的。
      // 得出来的结果是0.30000000000000004

      // 七.列举Math对象和Date对象的常用方法
      // getDate() 获取日 1 - 31
      // getDay() 获取星期 0 - 6（0 代表周日，1 代表周一）
      // getMonth() 获取月 0 - 11（0 代表一月）
      // getFullYear() 获取年份
      // getHours() 获取小时 0 - 23
      // getMinutes() 获取分钟 0 - 59
      // getSeconds() 获取秒 0 - 59
      // getMilliseconds() 获取毫秒 （1s = 1000ms）

      // Math.abs()	返回绝对值
      // Math.floor()	向下取整（向小取）
      // Math.ceil()	向上取整（向大取）
      // Math.round()	四舍五入取整
      // Math.random()	生成 0 - 1 之间的随机数[0, 1)
      // Math.max(x, y, z)	返回多个数中的最大值
      // Math.min(x, y, z)	返回多个数中的最小值
      // Math.pow(x, y)	返回 x 的 y 次幂
      // Math.sqrt()	对一个数进行开方运算

      console.log("八.请用三元运算符改写以下代码--------------");
      //  八.请用三元运算符改写以下代码
      var a = +prompt("输入一个数");
      var b = a > 10 ? (b = a) : (b = a - 2);
      console.log(b);

      // 九.break 与 continue 有什么区别？
      // 1、break：终止，跳出，结束循环（可以作用在任何地方）。常与switch分支结构合用。
      // 2、continue：结束本次的循环，进入下一次的循环（只能运用到循环结构中）。

      // 十.switch...case 语句中的 break 有什么作用？
    </script>
  </body>
</html>
